using System;

namespace BasecampRestAPI
{
	public interface IToDoListItem
	{
		int Id { get; }
		string Content { get; set; }
		int Position { get; }
		DateTime CreatedOn { get; }
		IPerson Creator { get; }
		bool Completed { get; set; }
		int CommentsCount { get; }
		string ResponsiblePartyType { get; set; }
		IPerson ResponsibleParty { get; set; }
		DateTime CompletedOn { get; set; }
		IPerson Completer { get; set; }
		ITimeEntry[] TimeEntries { get; }
		IComment[] RecentComments { get; }

		ITimeEntry AddTimeEntry(IPerson person, DateTime date, double hours, string description);
		IComment AddComment(string body);
		void Complete();
	}
}